Polarized gaze tracking

ABSTRACT

Embodiments that relate to determining gaze locations are disclosed. In one embodiment a method includes shining light along an outbound light path to the eyes of the user wearing glasses. Upon detecting the glasses, the light is dynamically polarized in a polarization pattern that switches between a random polarization phase and a single polarization phase, wherein the random polarization phase includes a first polarization along an outbound light path and a second polarization orthogonal to the first polarization along a reflected light path. The single polarization phase has a single polarization. During the random polarization phases, glares reflected from the glasses are filtered out and pupil images are captured. Glint images are captured during the single polarization phase. Based on pupil characteristics and glint characteristics, gaze locations are repeatedly detected.

Eye or gaze tracking systems and techniques may be utilized to determinea direction and/or location of a person's gaze. In some examples, alight source may illuminate the eye or eyes of a user and acorresponding camera may capture images of the eye. Such images mayinclude reflections from the cornea of the eye, or “glints.” Positionsof the pupil and glints from captured images may be utilized todetermine a direction and/or location of a user's gaze in a surroundingenvironment.

However, in situations where a user is wearing glasses, light from thelight source may cause specular reflections from a lens of the glasses.Such specular reflections may cause glares that can occlude cornealreflection glints and images of the pupil and/or limbus. Such glares maydegrade the ability of a gaze tracking system to accurately determinepositions of the pupil and/or glints. Accordingly, the accuracy of anestimated direction and/or location of a person's gaze may suffer.

SUMMARY

Various embodiments are disclosed herein that relate to systems andmethods for determining gaze locations of an eye of a user. For example,one disclosed embodiment provides a method for determining gazelocations of an eye of a user in which light is shone along an outboundlight path from a light source to the eyes of the user wearing glasses.The method includes detecting that the user is wearing glasses using animage captured by an image capture device.

Upon detecting that the user is wearing glasses, the light isdynamically polarized in a polarization pattern that repeatedly switchesbetween a random polarization phase and a single polarization phase at arate of at least 60 Hz, wherein the random polarization phase includes afirst polarization of the light along the outbound light pathintermediate the light source and the glasses of the user, and a secondpolarization orthogonal to the first polarization along a reflectedlight path intermediate the glasses and the image capture device. Thesingle polarization phase has a single polarization along one or more ofthe outbound light path and the reflected light path.

During the random polarization phases, glares reflected from the glassesthat would otherwise occlude a pupil of the eye are filtered out. Duringthe random polarization phases when the glares are filtered out, pupilimages are captured at a rate of 30 Hz or higher. During the singlepolarization phases, glint images are captured at a rate of 30 Hz orhigher. Based on pupil characteristics identified in the pupil imagesand glint characteristics identified in the glint images capturedproximate in time to the pupil images, the gaze locations are repeatedlydetected at a rate of at least 30 Hz.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic view of a gaze tracking system for determininggaze locations of an eye of a user according to an embodiment of thepresent disclosure.

FIG. 2 a schematic perspective view of a room including two userswearing glasses, a wall-mounted display comprising a gaze trackingsystem and a tablet computer comprising a gaze tracking system accordingto an embodiment of the present disclosure.

FIG. 3 is a schematic view of a gaze tracking system according to anembodiment of the present disclosure.

FIG. 4 is a schematic view of a gaze tracking system according toanother embodiment of the present disclosure.

FIG. 5 is a schematic view of a gaze tracking system according toanother embodiment of the present disclosure.

FIG. 6 is a schematic view of a gaze tracking system according toanother embodiment of the present disclosure

FIGS. 7A and 7B are a flow chart of a method for determining gazelocations of a user according to an embodiment of the presentdisclosure.

FIG. 8 is a simplified schematic illustration of an embodiment of acomputing device.

DETAILED DESCRIPTION

FIG. 1 shows a schematic view of one embodiment of a gaze trackingsystem 10 for determining one or more gaze locations of an eye of a user14. The gaze tracking system 10 includes a gaze tracking module 16 anddynamic polarization module 20 that may be stored in mass storage 18 ofa computing device 22. The gaze tracking module 16 and dynamicpolarization module 20 may be loaded into memory 26 and executed by aprocessor 30 of the computing device 22 to perform one or more of themethods and processes described in more detail below.

The gaze tracking system 10 includes one or more light sources 28 suchas, for example, an LED light source. In some examples the lightsource(s) 28 may comprise infrared light sources that emit infraredlight, such as an infrared LED. In other examples the light source(s) 28may comprise visible light sources that emit visible light, such as avisible LED for camera flash purposes or keyboard illumination on alaptop computer. In some examples, the light source(s) 28 may comprise adisplay on a computing device, such as a mobile phone.

As described in more detail below, the light source 28 may shine lightalong an outbound light path to the eyes of a user who may be wearingglasses. One or more polarizing filters 32 are configured to dynamicallypolarize the light emitted by the light source 28. The gaze trackingsystem 10 further includes one or more image capture devices 34 that areconfigured to capture images of the light that is reflected andscattered from the glasses and the eye of the user.

In some examples, the computing device 22, light source(s) 28,polarizing filter(s) 32 and image capture device(s) 34 may be integratedinto a common enclosure to form a single device. Such devices mayinclude, but are not limited to, desktop computers, PCs, hand-held smartphones, e-readers, laptop, notebook and tablet computers, displays,interactive televisions, set-top boxes, gaming consoles, etc. Forexample and with reference to FIG. 2, a tablet user 202 wearing glasses206 may utilize a tablet 210 that comprises gaze tracking system 10. Thetablet 210 may include an LED light source 214 with a polarizing filterand a gaze detection camera 218.

In other examples, one or more of the light source(s) 28, polarizingfilter(s) 32 and image capture device(s) 34 may be physically separatefrom and communicatively coupled to the computing device 22. In oneexample, the light source(s) 28, polarizing filter(s) 32 and imagecapture device(s) 34 may be located in an input device 222 mountedadjacent to a wall-mounted display 226, and may be communicativelycoupled to a computing device 22 in the display or in a separatecomponent, such as a gaming console, via a wired or wireless connection.A gaming user 234 wearing glasses 238 may use his eyes to interact withcontent displayed by the display 226 via the input device 222 and thegaze tracking module 16 on the computing device 22. It will beappreciated that many other types and configurations of gaze trackingsystems 10 having various form factors, whether separate from orintegrated with a computing device 22, may also be used and are withinthe scope of the present disclosure.

The computing device 22 may take the form of a desktop computing device,a mobile computing device such as a smart phone, laptop, notebook ortablet computer, network computer, home entertainment computer,interactive television, gaming system, or other suitable type ofcomputing device. Additional details regarding the components andcomputing aspects of the computing device 22 are described in moredetail below with reference to FIG. 8.

With reference again to FIG. 1 and as noted above, in some examples thegaze tracking system 10 may include or be communicatively coupled to adisplay device 38. In one example, the display device 38 may comprise aseparate display, such as a standalone monitor for example, that isoperatively connected to computing device 22 via a wired or wirelessconnection. The display 38 may include a display system 40 forpresenting one or more visual elements to a user.

The gaze tracking module 16 may be configured to determine gazedirections of one or both of a user's eyes in any suitable manner. Forexample, the gaze tracking module 16 may utilize images of the pupil andcorneal reflections that generate corneal glints captured by the imagecapture device(s) 34 to determine a center of the pupil and locations ofthe glints. A vector between the glints and the pupil center may be usedto determine the gaze location of the eye.

In one example a bright pupil technique may be utilized in which theilluminated light from the light source(s) 28 is coaxial with theoptical path of the eye, causing the light to reflect off the retina. Inother examples, a dark pupil technique may be utilized in which theilluminated light is offset from the optical path. For purposes of thepresent disclosure, examples of the gaze tracking system 10 utilizing adark pupil technique will be provided.

Images of the corneal glints and of the pupils as determined from imagedata gathered from the image capture device(s) 34 may be used todetermine an optical axis of each eye. Using this information, the gazetracking module 16 may determine a direction and/or at what physicalobject or virtual object the user is gazing. The gaze tracking module 16may further determine at what point on a physical or virtual object theuser is gazing. Such gaze tracking data may then be provided to thecomputing device 22, and may be utilized by one or more applications orother programs as needed.

With reference now also to FIGS. 3-6, descriptions of exampleembodiments of the gaze tracking system 10 will now be provided. In oneexample shown in FIG. 3, the gaze tracking system 10 includes a firstinfrared light source 302 that shines infrared light along a firstoutbound light path 306, and a second infrared light source 310 thatshines infrared light along a second outbound light path 314. It will beappreciated that the first outbound light path 306 extends from thefirst light source 302 to the eye 322 and the second outbound light path314 extends from the second light source 310 to the eye. It will beappreciated that infrared light sources are provided merely as examples,and that any other suitable light sources may be utilized and are withinthe scope of the present disclosure. With reference also to FIG. 1 andas described in more detail below, upon detecting that the user 14 iswearing glasses, the infrared light emitted from the first light source302 and second light source 310 may be dynamically polarized, using anoutbound polarizing filter 318 and an inbound polarizing filter 340, ina polarization pattern 44 that repeatedly switches between a randompolarization phase 48 and a single polarization phase 52.

As shown in FIG. 3, an eye 322 of user 14 peers through a lens 326 ofglasses 328 worn by the user. An image capture device 332 is configuredto capture images of light emitted by the first light source 302 andsecond light source 310 that is reflected and scattered from the eye 322and the lens 326 of glasses 328. As noted above, light from lightsources 302 and/or 310 may reflect from lens 326 to cause glares in theimages captured by the image capture device 332. Advantageously, thedynamic polarization module 20 is configured to substantially filter outsuch glares that may otherwise occlude the pupil 336 of the eye 322.

More particularly and in one example, the dynamic polarization module 20is configured to dynamically polarize the infrared light emitted fromthe first light source 302 and second light source 310, via outboundpolarizing filter 318 and inbound polarizing filter 340, in apolarization pattern 44 that repeatedly switches between a randompolarization phase 48 and a single polarization phase 52 at a rate of atleast 60 Hz. The random polarization phase 48 includes a firstpolarization 56 of the infrared light, provided by the outboundpolarizing filter 318, along the first outbound light path 306intermediate the first light source 302 and the glasses 328 of the user.The random polarization phase 48 also includes a second polarization 60that is orthogonal to the first polarization 56, and is provided by aninbound polarizing filter 340, along a reflected light path 344intermediate the glasses 328 and the image capture device 332. In thisexample the single polarization phase 52 has a single polarization 70provided by the inbound polarizing filter 340 along the reflected lightpath 344. It will be appreciated that the reflected light path 344extends from the eye 322 to the image capture device 332.

As shown in FIG. 3, a first portion 350 of unpolarized light from thesecond outbound light path 314 is reflected off the lens 326 along thereflected light path 344 through the outbound polarizing filter 340 tothe image capture device 332. A second portion 354 of unpolarized lightfrom the second outbound light path 314 passes through lens 326 and isreflected off the cornea of the eye 322, creating corneal glints thattravel along the reflected light path 344 through the inbound polarizingfilter 340 to the image capture device 332. During the singlepolarization phase 52, the first portion 350 and second portion 354 oflight may be used to capture glint images 64.

The outbound polarizing filter 318 and inbound polarizing filter 340 maycomprise linear, circular or any other suitable type of polarizingfilters. As shown in FIG. 3, the first outbound light path 306 includeslight that has passed through horizontal polarizing filter 318. A firstportion 360 of the horizontally polarized light from the first outboundlight path 306 is reflected off the lens 326 along the reflected lightpath 344 through the vertically polarized inbound polarizing filter 340to the image capture device 332. This first portion 360 of lightincludes glares reflected from the surface of lens 326. Because it isreflected, this first portion 360 of light maintains its horizontalpolarization, which is orthogonal to the vertical polarization of theinbound polarizing filter 340. Accordingly, the inbound polarizingfilter 340 substantially attenuates and cancels the glares from thisfirst portion 360 of light before it reaches the image capture device332. It will be appreciated that the orientations of the outboundpolarizing filter 318 and the inbound polarizing filter 340 may have anysuitable orientations that are orthogonal to one another.

A second portion 364 of light from the first outbound light path 306passes through lens 326 and is reflected off the cornea of the eye 322,creating horizontally polarized corneal glints. The horizontallypolarized corneal glints in this second portion 364 travel along thereflected light path 344 through the vertically polarized inboundpolarizing filter 340 to the image capture device 332. Because it isreflected, this second portion 364 of light also maintains itshorizontal polarization. Accordingly, the vertically polarized inboundpolarizing filter 340 substantially attenuates and cancels thehorizontally polarized corneal glints from this second portion 364 oflight before it reaches the image capture device 332.

This second portion 364 of light is also scattered by the pupil 336,creating unpolarized diffuse light that illuminates the pupil and limbusfeatures. This unpolarized diffuse light from the pupil 336 also travelsalong light path 344 through the inbound polarizing filter 340 to theimage capture device 332. Advantageously, by attenuating the glares andglints from the first portion 360 and second portion 364 of light fromthe first outbound light path 306 as described above, during the randompolarization phase 48 the unpolarized diffuse light in the secondportion 364 may be used to capture pupil images 68 that are not occludedby such glares and/or glints.

As noted above, the dynamic polarization module 20 is configured todynamically polarize the infrared light in a polarization pattern 44that repeatedly switches between the random polarization phase 48 andsingle polarization phase 52 at a rate of at least 60 Hz. In someexamples during the single polarization phases 52, glint images 64 maybe captured at a rate of 30 Hz or higher. During the random polarizationphases 48 when the glares are filtered out, pupil images 68 may also becaptured at a rate of 30 Hz or higher. Advantageously, using these glintimages 64 and pupil images 68, gaze locations of the eye 322 may berepeatedly detected at a rate of at least 30 Hz based on pupilcharacteristics 72 identified in the pupil images and glintcharacteristics 76 identified in the glint images captured proximate intime to the pupil images. For example, where pupil images 68 and glintimages 64 are captured at a rate of 30 Hz., an interval between anadjacent captured pupil image and glint image may be 0.020 secs, 0.015secs, 0.010 secs, or any other suitable interval.

Such pupil characteristics 72 may include, but are not limited to, acenter of the pupil. Such glint characteristics 76 may include, but arenot limited to, locations of the glints relative to the pupil center. Asnoted above, any suitable gaze-tracking technique may be utilized todetermine such gaze locations.

In some examples, such as particular applications or programs that mayreceive more frequent eye movements from a user, faster capture ratesand more frequent gaze location detections may be utilized. For example,the dynamic polarization module may be configured to repeatedly switchbetween the random polarization phase 48 and the single polarizationphase 52 at a rate of between 60 Hz and 120 Hz. In such examples thepupil images 68 and glint images 64 may be captured at a rate of between30 Hz. and 60 Hz.

In one example, the rate of switching between the random polarizationphase 48 and the single polarization phase 52 may be twice the rate ofcapturing pupil images 68, and twice the rate of capturing glint image64. For example, the dynamic polarization module may be configured torepeatedly switch between the random polarization phase 48 and thesingle polarization phase 52 at a rate of 120 Hz. and the pupil images68 and glint images 64 may be captured at a rate of 60 Hz.

In some examples, the dynamic polarization module 20 may be configuredto detect whether the user is wearing glasses. For example, the dynamicpolarization module 20 may identify glares from glasses by determiningthat one or more glares are located in the vicinity of an eye of a user.

The dynamic polarization module 20 may also distinguish such glares fromcorneal glints. Glares reflected from a lens of glasses are typicallymuch larger in size than a corneal glint. Glares may also have adistinctive, irregular shape. On the other hand, corneal glints aretypically smaller than glares, often include multiple radiating arms,and may be circular with a diameter approximately twice the diameter ofthe pupil. In some examples, the dynamic polarization module may usesuch distinguishing information to identify one or more glares fromglasses.

In some examples, the dynamic polarization module 20 may detect that theuser is not wearing glasses. In this situation, glares from glasses arenot present. Accordingly, upon detecting that the user is not wearingglasses, the dynamic polarization module 20 may be configured to refrainfrom dynamically polarizing the infrared light in the polarizationpattern 44. Advantageously, this may enable the gaze tracking system 10to reduce power consumption by, for example, performing gaze tracking byilluminating the second, unpolarized light source 310 and not the first,polarized light source 302. In one example and using light from thesecond light source 310, pupil images 68 and glint images 64 may becaptured during the single polarization phases 52 at a rate of 30 Hz.,and the gaze locations may also be detected at a rate of 30 Hz.

With reference now to FIG. 4, in another example an additional outboundpolarizing filter 370 may be added to the second light source 310, wherethe filter 370 has the same orientation as the inbound polarizing filter340. With this configuration, the light traveling along both the firstoutbound light path 306 and the second outbound light path 314 ispolarized. Advantageously, the outbound polarizing filter 318 and theadditional outbound polarizing filter 370 may be configured to cause thelight traveling along the first outbound light path 306 and the secondoutbound light path 314 to have a similar luminance. In this manner,glint images 64 and pupil images 68 captured at the image capture device332 may have a similar luminance and signal-to-noise ratio, which mayenhance an accuracy of the gaze location determinations.

With reference now to FIG. 5, in another example the gaze trackingsystem 10 may comprise a single infrared light source 502 and aswitchable polarizing filter 506 that may alternate between a firstpolarization and a second polarization that is orthogonal to the firstpolarization. In the example of FIG. 5, the switchable polarizing filter506 may alternate between vertical and horizontal orientations.Accordingly, infrared light emitted from the single light source 502 maybe dynamically polarized in a polarization pattern 44 as describedabove, and captured by the image capture device 332. Glint images 64 andpupil images 68 as described above may then be captured and utilized fordetermining gaze locations as described above.

With reference now to FIG. 6, in another example the gaze trackingsystem 10 may comprise a single infrared light source 602 and a singleoutbound polarizing filter 606 that polarizes light emitted from thelight source in a first orientation. In this example, a first portion650 of polarized light from a first outbound light path 654 is reflectedoff the lens 326 along the reflected light path 644 through a firstinbound polarizing filter 660 to a first image capture device 610. Asshown in FIG. 6, the first inbound polarizing filter 660 has the samehorizontal orientation as the outbound polarizing filter 606.

Similarly, a second portion 656 of polarized light from the firstoutbound light path 654 passes through lens 326 and is reflected off thecornea of the eye 322, creating corneal glints that travel along thereflected light path 644 through the first inbound polarizing filter 660to the first image capture device 610. As explained above, during thesingle polarization phase 52, the first portion 650 and second portion656 of light may be used to capture glint images 64 with the first imagecapture device 610.

As shown in FIG. 6, second outbound light path 670 includes light thathas passed through outbound polarizing filter 606. A first portion 674of the polarized light from the second outbound light path 670 isreflected off the lens 326 along the reflected light path 644 through asecond inbound polarizing filter 676 to a second image capture device680. The second inbound polarizing filter 676 has a vertical orientationorthogonal to the horizontal orientation of the outbound polarizingfilter 606. Accordingly, the second inbound polarizing filter 676substantially attenuates and cancels the glares from this first portion674 of light before it reaches the second image capture device 680.

A second portion 684 of light from the second outbound light path 670passes through lens 326 and is reflected off the cornea of the eye 322,creating horizontally polarized corneal glints. These polarized glintsin second portion 684 travel along the reflected light path 644 throughthe vertically polarized second inbound polarizing filter 676 to thesecond image capture device 680. Accordingly, the second inboundpolarizing filter 676 substantially attenuates and cancels thehorizontally polarized corneal glints from this second portion 684 oflight before it reaches the second image capture device 680. Asexplained above, during the random polarization phase 48 the firstportion 674 and second portion 684 of light may be used to capture pupilimages 68 with the second image capture device 680.

FIGS. 7A and 7B illustrate a flow chart of a method 700 for navigating ahierarchy of visual elements according to an embodiment of the presentdisclosure. The following description of method 700 is provided withreference to the software and hardware components of the gaze trackingsystem 10 described above and shown in FIGS. 1-6. It will be appreciatedthat method 700 may also be performed in other contexts using othersuitable hardware and software components.

With reference to FIG. 7A, at 702 the method 700 may include shininglight along an outbound light path from a light source to the eyes ofthe user wearing glasses. At 706 the method 700 includes detecting thatthe user is wearing glasses using an image captured by an image capturedevice. At 710 the method 700 may include, upon detecting that the useris wearing glasses, dynamically polarizing the light in a polarizationpattern that repeatedly switches between a random polarization phase anda single polarization phase at a rate of at least 60 Hz. The randompolarization phase includes a first polarization of the light along theoutbound light path intermediate the light source and the glasses of theuser and a second polarization orthogonal to the first polarizationalong a reflected light path intermediate the glasses and the imagecapture device. The single polarization phase has a single polarizationalong one or more of the outbound light path and the reflected lightpath.

At 714 the method 700 may include dynamically polarizing the light in apolarization pattern by repeatedly switching between the randompolarization phase and the single polarization phase at a rate of 120Hz. At 718 the method 700 may include dynamically polarizing the lightby alternating a switchable polarizing filter between the firstpolarization and the second polarization orthogonal to the firstpolarization. At 722 the method 700 may include, during the randompolarization phases, filtering out glares reflected from the glassesthat would otherwise occlude a pupil of the eye.

At 726 the method 700 may include during the random polarization phaseswhen the glares are filtered out, capturing pupil images at a rate of 30Hz or higher. At 730 the method 700 may include, during the singlepolarization phases, capturing glint images at a rate of 30 Hz orhigher. At 734 the method 700 may include repeatedly detecting the gazelocations at a rate of at least 30 Hz based on pupil characteristicsidentified in the pupil images and glint characteristics identified inthe glint images captured proximate in time to the pupil images.

With reference now to FIG. 7B, at 738 the method 700 may includedetecting that the user is wearing glasses by determining that one ormore of the glares is located in the vicinity of the eye of the user inthe captured image. At 742 the method 700 may include capturing thepupil images and the glint images at a rate of 60 Hz., and repeatedlydetecting the gaze locations at a rate of 60 Hz. At 746 the method 700may include detecting that the user is not wearing glasses. At 750 themethod 700 may include, upon detecting that the user is not wearingglasses, refraining from dynamically polarizing the light in thepolarization pattern.

At 754 the method 700 may include capturing the pupil images and theglint images during the single polarization phases at a rate of 30 Hz orhigher. At 758 the method 700 may include the single polarization of thesingle polarization phases comprising applying the second polarizationon the outbound light path. At 762, where the light source is a firstlight source, the method 700 may include a second light source emittingunpolarized light to the eyes of the user wearing glasses, wherein theunpolarized light is used to capture the glint images. At 766, whereinthe image capture device is a first image capture device that capturesthe pupil images, the method 700 may include using a second imagecapture device that captures the glint images.

It will be appreciated that method 700 is provided by way of example andis not meant to be limiting. Therefore, it is to be understood thatmethod 700 may include additional and/or alternative steps than thoseillustrated in FIGS. 7A and 7B. Further, it is to be understood thatmethod 700 may be performed in any suitable order. Further still, it isto be understood that one or more steps may be omitted from method 700without departing from the scope of this disclosure.

FIG. 8 schematically shows a nonlimiting embodiment of a computingsystem 800 that may perform one or more of the above described methodsand processes. Computing device 22 may take the form of or include oneor more aspects of computing system 800. Computing system 800 is shownin simplified form. It is to be understood that virtually any computerarchitecture may be used without departing from the scope of thisdisclosure. In different embodiments, computing system 800 may take theform of a mainframe computer, server computer, desktop computer, laptopcomputer, tablet computer, home entertainment computer, networkcomputing device, mobile computing device, mobile communication device,gaming device, etc.

As shown in FIG. 8, computing system 800 includes a logic subsystem 804,storage subsystem 808, and sensor subsystem 812. Computing system 800may optionally include a display subsystem 816, communication subsystem820, input subsystem 822 and/or other subsystems and components notshown in FIG. 8. Computing system 800 may also include computer readablemedia, with the computer readable media including computer readablestorage media and computer readable communication media. Computingsystem 800 may also optionally include other user input devices such askeyboards, mice, game controllers, and/or touch screens, for example.Further, in some embodiments the methods and processes described hereinmay be implemented as a computer application, computer service, computerAPI, computer library, and/or other computer program product in acomputing system that includes one or more computers.

Logic subsystem 804 may include one or more physical devices configuredto execute one or more instructions. For example, the logic subsystem804 may be configured to execute one or more instructions that are partof one or more applications, services, programs, routines, libraries,objects, components, data structures, or other logical constructs. Suchinstructions may be implemented to perform a task, implement a datatype, transform the state of one or more devices, or otherwise arrive ata desired result.

The logic subsystem 804 may include one or more processors that areconfigured to execute software instructions. Additionally oralternatively, the logic subsystem may include one or more hardware orfirmware logic machines configured to execute hardware or firmwareinstructions. Processors of the logic subsystem may be single core ormulticore, and the programs executed thereon may be configured forparallel or distributed processing. The logic subsystem may optionallyinclude individual components that are distributed throughout two ormore devices, which may be remotely located and/or configured forcoordinated processing. One or more aspects of the logic subsystem maybe virtualized and executed by remotely accessible networked computingdevices configured in a cloud computing configuration.

Storage subsystem 808 may include one or more physical, persistentdevices configured to hold data and/or instructions executable by thelogic subsystem 804 to implement the herein described methods andprocesses. When such methods and processes are implemented, the state ofstorage subsystem 808 may be transformed (e.g., to hold different data).

Storage subsystem 808 may include removable media and/or built-indevices. Storage subsystem 808 may include optical memory devices (e.g.,CD, DVD, HD-DVD, Blu-Ray Disc, etc.), semiconductor memory devices(e.g., RAM, EPROM, EEPROM, etc.) and/or magnetic memory devices (e.g.,hard disk drive, floppy disk drive, tape drive, MRAM, etc.), amongothers. Storage subsystem 808 may include devices with one or more ofthe following characteristics: volatile, nonvolatile, dynamic, static,read/write, read-only, random access, sequential access, locationaddressable, file addressable, and content addressable.

In some embodiments, aspects of logic subsystem 804 and storagesubsystem 808 may be integrated into one or more common devices throughwhich the functionally described herein may be enacted, at least inpart. Such hardware-logic components may include field-programmable gatearrays (FPGAs), program- and application-specific integrated circuits(PASIC/ASICs), program- and application-specific standard products(PSSP/ASSPs), system-on-a-chip (SOC) systems, and complex programmablelogic devices (CPLDs), for example.

FIG. 8 also shows an aspect of the storage subsystem 808 in the form ofremovable computer readable storage media 824, which may be used tostore data and/or instructions executable to implement the methods andprocesses described herein. Removable computer-readable storage media824 may take the form of CDs, DVDs, HD-DVDs, Blu-Ray Discs, EEPROMs,and/or floppy disks, among others.

It is to be appreciated that storage subsystem 808 includes one or morephysical, persistent devices. In contrast, in some embodiments aspectsof the instructions described herein may be propagated in a transitoryfashion by a pure signal (e.g., an electromagnetic signal, an opticalsignal, etc.) that is not held by a physical device for at least afinite duration. Furthermore, data and/or other forms of informationpertaining to the present disclosure may be propagated by a pure signalvia computer-readable communication media.

Sensor subsystem 812 may include one or more sensors configured to sensedifferent physical phenomenon (e.g., visible light, infrared light,sound, acceleration, orientation, position, etc.) as described above.Sensor subsystem 812 may be configured to provide sensor data to logicsubsystem 804, for example. such data may include image information,ambient lighting information, depth information, audio information,position information, motion information, user location information,and/or any other suitable sensor data that may be used to perform themethods and processes described above.

When included, display subsystem 816 may be used to present a visualrepresentation of data held by storage subsystem 808. As the abovedescribed methods and processes change the data held by the storagesubsystem 808, and thus transform the state of the storage subsystem,the state of the display subsystem 816 may likewise be transformed tovisually represent changes in the underlying data. The display subsystem816 may include one or more display devices utilizing virtually any typeof technology. Such display devices may be combined with logic subsystem804 and/or storage subsystem 808 in a shared enclosure, or such displaydevices may be peripheral display devices.

When included, communication subsystem 820 may be configured tocommunicatively couple computing system 800 with one or more networksand/or one or more other computing devices. Communication subsystem 820may include wired and/or wireless communication devices compatible withone or more different communication protocols. As nonlimiting examples,the communication subsystem 820 may be configured for communication viaa wireless telephone network, a wireless local area network, a wiredlocal area network, a wireless wide area network, a wired wide areanetwork, etc. In some embodiments, the communication subsystem may allowcomputing system 800 to send and/or receive messages to and/or fromother devices via a network such as the Internet.

When included, input subsystem 822 may comprise or interface with one ormore sensors or user-input devices such as a game controller, gestureinput detection device, voice recognizer, inertial measurement unit,keyboard, mouse, or touch screen. In some embodiments, the inputsubsystem 822 may comprise or interface with selected natural user input(NUI) componentry. Such componentry may be integrated or peripheral, andthe transduction and/or processing of input actions may be handled on-or off-board. Example NUI componentry may include a microphone forspeech and/or voice recognition; an infrared, color, stereoscopic,and/or depth camera for machine vision and/or gesture recognition; ahead tracker, eye tracker, accelerometer, and/or gyroscope for motiondetection and/or intent recognition; as well as electric-field sensingcomponentry for assessing brain activity.

The term “module” may be used to describe an aspect of the gaze trackingsystem 10 that is implemented to perform one or more particularfunctions. In some cases, such a module may be instantiated via logicsubsystem 804 executing instructions held by storage subsystem 808. Itis to be understood that different modules may be instantiated from thesame application, service, code block, object, library, routine, API,function, etc. Likewise, the same module may be instantiated bydifferent applications, services, code blocks, objects, routines, APIs,functions, etc. The term “module” is meant to encompass individual orgroups of executable files, data files, libraries, drivers, scripts,database records, etc.

It is to be understood that the configurations and/or approachesdescribed herein are exemplary in nature, and that these specificembodiments or examples are not to be considered in a limiting sense,because numerous variations are possible. The specific routines ormethods described herein may represent one or more of any number ofprocessing strategies. As such, various acts illustrated may beperformed in the sequence illustrated, in other sequences, in parallel,or in some cases omitted. Likewise, the order of the above-describedprocesses may be changed.

The subject matter of the present disclosure includes all novel andnonobvious combinations and subcombinations of the various processes,systems and configurations, and other features, functions, acts, and/orproperties disclosed herein, as well as any and all equivalents thereof.

The invention claimed is:
 1. A method for determining gaze locations ofan eye of a user, the method comprising: shining light along an outboundlight path from a light source to the eyes of the user wearing glasses;detecting that the user is wearing glasses using an image captured by animage capture device; upon detecting that the user is wearing glasses,dynamically polarizing the light in a polarization pattern thatrepeatedly switches between a random polarization phase and a singlepolarization phase at a rate of at least 60 Hz, wherein the randompolarization phase includes a first polarization of the light along theoutbound light path intermediate the light source and the glasses of theuser and a second polarization orthogonal to the first polarizationalong a reflected light path intermediate the glasses and the imagecapture device, and the single polarization phase having a singlepolarization along one or more of the outbound light path and thereflected light path; during the random polarization phases, filteringout glares reflected from the glasses that would otherwise occlude apupil of the eye; during the random polarization phases when the glaresare filtered out, capturing pupil images at a rate of 30 Hz or higher;during the single polarization phases, capturing glint images at a rateof 30 Hz or higher; and repeatedly detecting the gaze locations at arate of at least 30 Hz based on pupil characteristics identified in thepupil images and glint characteristics identified in the glint imagescaptured proximate in time to the pupil images.
 2. The method of claim1, wherein detecting that the user is wearing glasses further comprisesdetermining that one or more of the glares is located in the vicinity ofthe eye of the user in the captured image.
 3. The method of claim 1,wherein dynamically polarizing the light in a polarization patternfurther comprises repeatedly switching between the random polarizationphase and the single polarization phase at a rate of 120 Hz.
 4. Themethod of claim 1, wherein the pupil images and the glint images arecaptured at a rate of 60 Hz., and the gaze locations are repeatedlydetected at a rate of 60 Hz.
 5. The method of claim 1, furthercomprising: detecting that the user is not wearing glasses; upondetecting that the user is not wearing glasses, refraining fromdynamically polarizing the light in the polarization pattern thatrepeatedly switches between the random polarization phase and the singlepolarization phase; and capturing the pupil images and the glint imagesduring the single polarization phases at a rate of 30 Hz or higher. 6.The method of claim 1, wherein the single polarization of the singlepolarization phases further comprises applying the second polarizationon the outbound light path.
 7. The method of claim 1, whereindynamically polarizing the light comprises alternating a switchablepolarizing filter between the first polarization and the secondpolarization orthogonal to the first polarization.
 8. The method ofclaim 1, wherein the light source is a first light source, and a secondlight source emits unpolarized light to the eyes of the user wearingglasses, wherein the unpolarized light is used to capture the glintimages.
 9. The method of claim 1, wherein the image capture device is afirst image capture device that captures the pupil images, and themethod further comprises using a second image capture device thatcaptures the glint images.
 10. A gaze tracking system for determininggaze locations of an eye of a user, the gaze tracking system comprising:a light source for shining light along an outbound light path to theeyes of the user wearing glasses; a polarizing filter configured todynamically polarize the light; an image capture device configured tocapture images of the light reflected and scattered from the eye of theuser and the glasses; a computing device operatively connected to atleast the light source and the image capture device; a dynamicpolarization module executed by a processor of the computing device, thedynamic polarization module configured to: detect that the user iswearing glasses using an image captured by the image capture device;upon detecting that the user is wearing glasses, dynamically polarizethe light in a polarization pattern that repeatedly switches between arandom polarization phase and a single polarization phase at a rate ofat least 60 Hz, wherein the random polarization phase includes a firstpolarization of the light along the outbound light path intermediate thelight source and the glasses of the user and a second polarizationorthogonal to the first polarization along a reflected light pathintermediate the glasses and the image capture device, and the singlepolarization phase having a single polarization along one or more of theoutbound light path and the reflected light path; during the randompolarization phases, filter out glares reflected from the glasses thatwould otherwise occlude a pupil of the eye; during the randompolarization phases when the glares are filtered out, capture pupilimages with the image capture device at a rate of 30 Hz or higher; andduring the single polarization phases, capture glint images with theimage capture device at a rate of 30 Hz or higher; and a gaze trackingmodule configured to repeatedly detect the gaze locations at a rate ofat least 30 Hz based on pupil characteristics identified in the pupilimages and glint characteristics identified in the glint images capturedproximate in time to the pupil images.
 11. The gaze tracking system ofclaim 10, wherein the dynamic polarization module is further configuredto detect that the user is wearing glasses by determining that one ormore of the glares is located in the vicinity of the eye of the user inthe captured image.
 12. The gaze tracking system of claim 10, whereinthe dynamic polarization module is further configured to dynamicallypolarize the light in a polarization pattern by repeatedly switchingbetween the random polarization phase and the single polarization phaseat a rate of 120 Hz.
 13. The gaze tracking system of claim 10, whereinthe dynamic polarization module is further configured to capture thepupil images and the glint images at a rate of 60 Hz., and detect thegaze locations at a rate of 60 Hz.
 14. The gaze tracking system of claim10, wherein the dynamic polarization module is further configured to:detect that the user is not wearing glasses; upon detecting that theuser is not wearing glasses, refrain from dynamically polarizing thelight in the polarization pattern that repeatedly switches between therandom polarization phase and the single polarization phase; and capturethe pupil images and the glint images during the single polarizationphases at a rate of 30 Hz or higher.
 15. The gaze tracking system ofclaim 10, wherein the single polarization of the single polarizationphases comprises applying the second polarization on the outbound lightpath.
 16. The gaze tracking system of claim 10, wherein the dynamicpolarization module is further configured to dynamically polarize thelight by alternating a switchable polarizing filter between the firstpolarization and the second polarization orthogonal to the firstpolarization.
 17. The gaze tracking system of claim 10, wherein thelight source is a first light source, wherein the single polarizationphase has the single polarization along the reflected light path, andfurther comprising a second light source that emits unpolarized light tothe eyes of the user wearing glasses, wherein the unpolarized light isused to capture the glint images.
 18. The gaze tracking system of claim10, wherein the image capture device is a first image capture devicethat captures the pupil images, and the dynamic polarization module isfurther configured to use a second image capture device to capture theglint images.
 19. A method for determining gaze locations of an eye of auser, the method comprising: shining light along an outbound light pathfrom a light source to the eyes of the user wearing glasses; detectingthat the user is wearing glasses using an image captured by an imagecapture device; upon detecting that the user is wearing glasses,dynamically polarizing the light in a polarization pattern thatrepeatedly switches between a random polarization phase and a singlepolarization phase at a rate of at least 60 Hz, wherein the randompolarization phase includes a first polarization of the light along theoutbound light path intermediate the light source and the glasses of theuser and a second polarization orthogonal to the first polarizationalong a reflected light path intermediate the glasses and the imagecapture device, and the single polarization phase having a singlepolarization along one or more of the outbound light path and thereflected light path; during the random polarization phases, filteringout glares reflected from the glasses that would otherwise occlude apupil of the eye; during the random polarization phases when the glaresare filtered out, capturing pupil images at a rate of 30 Hz or higher;during the single polarization phases, capturing glint images at a rateof 30 Hz or higher; repeatedly detecting the gaze locations at a rate ofat least 30 Hz based on pupil characteristics identified in the pupilimages and glint characteristics identified in the glint images capturedproximate in time to the pupil images; detecting that the user is notwearing glasses; upon detecting that the user is not wearing glasses,refraining from dynamically polarizing the light in the polarizationpattern that repeatedly switches between the random polarization phaseand the single polarization phase; and capturing the pupil images andthe glint images during the single polarization phases at a rate of 30Hz or higher.
 20. The method of claim 19, wherein dynamically polarizingthe light comprises alternating a switchable polarizing filter betweenthe first polarization and the second polarization orthogonal to thefirst polarization.